로그인

JavaScript는 리다이렉트 링크 없이도 입구와 페이지 방문자를 유도하는 데 사용될 수 있습니다. 그러나 두 가지 모두 함께 사용되어야 하며 그렇게 해야 합니다.

다시 말해, 어떤 시나리오에서든 우리의 JS가 항상 페이지에 있는 것이 가장 좋습니다.

이는 JS가 페이지 방문을 추적할 뿐만 아니라 추적의 신뢰성을 향상시키는 여러 헬퍼 함수를 가지고 있기 때문입니다.

우리의 JavaScript 세부 사항은 이미 여기에 문서화되어 있으며, JS에서 데이터를 얻는 방법과 헬퍼 함수에 대해 설명합니다.

그러나 아래에 기술적 요약을 제공하겠습니다.


JavaScript 뷰 추적

우리의 JS는 임베디드 속성 + URL 매개변수를 처리하며, 이는 존재할 경우 우선순위를 갖고, 데이터 페이로드를 우리의 엣지(사용자의 커스텀 도메인을 통해)로 POST합니다:

https://USER_DOMAIN/js/funnel

추적이 성공적이라면 우리의 엣지는 방문자의 ID(VID), 현재 노드 ID, 그리고 히트 ID를 포함하는 표준 페이로드로 응답할 것입니다, 예를 들면:

{
    "error": "",
    "resolvedTokens": {
        "{hit}": "1wj7y5680dz26p1g9p0101",
        "{visitor}": "afdwb7QPV6Y59aTP3fQxZ3tX2ox",
        "{current-node-id}": "0XJbzUwQYEWa"
    },
    "skv": "vid"
}

방문자 ID는 사용자의 세션 레벨 식별자입니다. 이러한 세션 객체는 우리의 엣지와 함께 여러 데이터센터에 배포된 중앙 집중식 캐시에 저장됩니다.

VID에는 해당 엣지 위치가 인코딩되어 있어, 사용자가 VID 값을 가지고 있고 위치를 변경하거나(예: VPN 사용) 할 경우, 우리의 엣지는 세션 객체에 대해 올바른 캐시 DB를 확인할 수 있습니다.

히트 ID는 현재 페이지 뷰의 고유 ID입니다. 단일 방문자는 접촉하는 모든 노드에 대해 고유한 히트 ID를 생성합니다.

현재 노드 ID는 자명합니다.


임베디드 속성 및 옵션

FunnelFlux JS의 동작과 반환된 토큰을 수정하려면 JS 섹션의 해당 문서를 여기에서 참조하세요.


헬퍼 함수

이에 대한 자세한 내용은 여기에 설명되어 있습니다.

이것이 우리의 JS가 모든 페이지에 존재해야 하는 중요한 이유입니다.

첫째, JS는 자동으로 페이지에 메타 리퍼러 태그를 추가하여 브라우저의 기본 동작을 재정의하고 전체 리퍼러를 onward 링크로 전달합니다.

이는 이전의 urlRewrite를 유용하게 만들며, 그렇지 않으면 (적어도 Chrome에서) 기본적으로 전달되는 리퍼러는 호스트 이름만 포함합니다

둘째, 페이지의 <a> 요소를 스캔하여 *action/*을 찾고, 발견되면 우리의 JS는 다음을 추가합니다:

...vid=VISITOR_ID&rn=CURRENT_NODE_ID

액션 링크에서의 이 명시적 선언은 후속 클릭에서 사용자의 세션 식별자와 참조 노드 ID가 선언되므로 리퍼러/쿠키에 대한 의존성을 제거합니다.

여기서 urlRewrite 함수는 URL에 n=CURRENT_NODE_ID를 추가하는 반면, 액션 링크는 현재 노드 ID를 "rn" 또는 "referring node" 매개변수로 추가한다는 점에 주목하세요.

이는 우리의 다른 기능 때문에 중요합니다: data-lum="action" 속성이 <a> 요소에 추가되면, 우리는 위의 데이터도 추가합니다.

이는 액션(리다이렉션) 링크 없이 페이지 간 직접 연결할 때 유용하지만, 사용자가 여전히 신뢰할 수 있는 추적을 보장하고자 할 때 유용합니다. 이의 예는 funnelflux.com 홈페이지에서 볼 수 있습니다. 소스 코드와 클라우드 옵션으로의 링크가 이러한 URL 매개변수를 포함하도록 업데이트되는 방식을 확인하세요.

이 시나리오에서 n=CURRENT_NODE_ID를 전달하면 다음 페이지가 로드되고, JS가 로드되며, URL 매개변수가 현재 페이지의 노드 ID를 이전 노드의 ID로 재정의하려고 시도하여 문제를 일으킬 것입니다. 따라서 액션 링크에서는 항상 "rn"을 사용하여 원래 노드를 참조합니다.